package ontology.concepts.vo;

import jade.core.AID;
import jade.util.leap.ArrayList;
import ontology.concepts.general.ICase;
import ontology.concepts.general.IComputeCompleteInfoTask;

public class VOComputeCompleteInfoTask<T> implements IComputeCompleteInfoTask<T>{

	private String conversationID;
	private int phase;
	private AID requestingAgent;
	
	//for pre-select
	private ICase<T> originalCase;
	
	//for similarities
	private ArrayList cases;
	private ArrayList similarities;
	
	//for utilities
	//TODO: falta algo que vou ficar a saber quando estiver a trabalhar no agente utilities
	private ArrayList ids;
	
	private ArrayList utilities;
	private ArrayList outcomes;
	
	private VOObligation obligation;
	

	public VOObligation getObligation() {
		return obligation;
	}

	public void setObligation(VOObligation obligation) {
		this.obligation = obligation;
	}

	@Override
	public String getConversationID() {
		return conversationID;
	}

	@Override
	public void setConversationID(String conversationID) {
		this.conversationID = conversationID;
		
	}

	@Override
	public int getPhase() {
		return phase;
	}

	@Override
	public void setPhase(int phase) {
		this.phase = phase;
		
	}

	@Override
	public AID getRequestingAgent() {
		return requestingAgent;
	}

	@Override
	public void setRequestingAgent(AID requestingAgent) {
		this.requestingAgent = requestingAgent;
		
	}

	@Override
	public ICase<T> getOriginalCase() {
		return originalCase;
	}

	@Override
	public void setOriginalCase(ICase<T> originalCase) {
		this.originalCase = originalCase;		
	}

	@Override
	public ArrayList getCases() {
		return cases;
	}

	@Override
	public void setCases(ArrayList cases) {
		this.cases = cases;
	}

	@Override
	public ArrayList getSimilarities() {
		return similarities;
	}

	@Override
	public void setSimilarities(ArrayList similarities) {
		this.similarities = similarities;
		
	}

	@Override
	public ArrayList getIds() {
		return ids;
	}

	@Override
	public void setIds(ArrayList ids) {
		this.ids = ids;		
	}

	@Override
	public ArrayList getUtilities() {
		return utilities;
	}

	@Override
	public void setUtilities(ArrayList utilities) {
		this.utilities = utilities;		
	}

	@Override
	public ArrayList getOutcomes() {
		return outcomes;
	}

	@Override
	public void setOutcomes(ArrayList outcomes) {
		this.outcomes = outcomes;		
	}

}
